<?php
namespace app\admin\controller;


use think\Exception;
use think\exception\ValidateException;
use \think\facade\Filesystem;
use think\facade\Request;

class Upload{
     public  static function   getImgPath($filename='img',$dir='linshi/upload',$rule='data'){
        try{
            //接参上传
            $file=Request::file();
            //验证要求 图片大小与格式
            validate([$filename=>'filesize:102400|fileExt:jpg,png'])->check($file);
            //定义一个空数组
            $paths=[];
            //判断是不是数组,列表需要单图与多图分别添加
            if (is_array($file[$filename])){
                //上传数组时循环数组取出每个数组(多图图片)
                foreach ($file[$filename] as $img){
                    //上传到文件夹里    disk自定义文件目录  参数1:自定义文件夹,图片路径,文件规则:md5,sha1,data
                  $path=Filesystem::disk('public')->putFile($dir,$img,$rule);
                  //将文件路径转成正确的放到数据库里
                  $paths[]=str_replace('\\','/',$path);
                }
                $paths = implode(',',$paths);
            }else{
                //单图图片
                $path = Filesystem::disk('public')->putFile($dir,$file[$filename],$rule);
                $paths = str_replace('\\','/',$path);
            }
        }catch (ValidateException $e) {
            return [false,$e->getMessage()];

        }catch (Exception $e){
            $paths='';
        }
         return [true,$paths];
     }


    //ajax上传图片
     public function ajaxUpload(){
         //ajax上传的图片放进临时文件  返回临时文件
         list($status,$dir)=self::getImgPath();
         //接参 名字与js中传的名字相符合
//        $file=Request::file('img');
//        $dir=Filesystem::disk('public')->putFile('upload',$file,'data');
//        $dir=str_replace('\\','/',$dir);
        return json($dir);



      }

}